// pub controlls whether user can visit property of method
mod back_of_house {
    pub struct Breakfast {
        pub toast: String,
        seasonful_fruit: String
    }

    impl Breakfast {
        pub fn summer(toast: &str) -> Breakfast {
            Breakfast {
                toast: String::from(toast),
                seasonful_fruit: String::from("apple"),
            }
        }
    }
}

pub fn eat_at_restraunt() {
    let mut meal = back_of_house::Breakfast::summer("Rye");
    meal.toast = String::from("Wheat");
    println!("I'd like {} toast please", meal.toast);
}

fn main() {
    // tuple could be depackaged by operator .
    let x: (i32, f64, u8) = (300, 3.1, 24);
    let i1 = x.0;
    let f2 = x.1;
    let u3 = x.2;

    println!("{}, {}, {}", i1, f2, u3);
    eat_at_restraunt();
}
